#include<iostream>
#include<string.h>
#define Max 50
using namespace std;
typedef char ElementType;
typedef int Status;
typedef int Position;
typedef struct SNode {
    ElementType *Data;
    Position Top;
    int MaxSize;
}Stack;
Stack *CreateStack();
Status Push( Stack * s, ElementType ch[] );
char* Pop( Stack *s); 
int main()
{
	Stack *s;
	char ch[Max],*ch1;
	s=CreateStack();
	scanf("%s",ch);
	Push(s,ch);
	ch1=Pop(s);
	cout<<ch;
	cout<<ch1;
	if(strcmp(ch,ch1)==0)cout<<"yes";
	else cout<<"no";
}
Stack *CreateStack()
{
	Stack *s;
	s = new Stack;
    s->Data = new ElementType[Max];
    s->Top = -1;
    s->MaxSize = Max;
    return s;
}
Status Push( Stack *s, ElementType ch[] ){
	ElementType X;
	if(s->Top==s->MaxSize)return 0;
	for(int i=0;ch[i];i++){
		X=ch[i];
		s->Top++;
		if(s->Top==s->MaxSize)return 0;
	 	s->Data[s->Top]=X;
	}
	return 1;
 } 
char* Pop( Stack *s){
	char ch1[Max];
	ElementType X;
	int i;
	for(i=0;s->Top!=-1;i++){
		X=s->Data[s->Top];
		ch1[i]=X;
		s->Top--;
	}
	return ch1;
} 
 
